# 使用Python官方镜像作为基础镜像
FROM python:3.8-slim

# 设置工作目录
WORKDIR /app

# 复制项目文件到容器中
COPY requirements.txt .
COPY main.py .
COPY config.yaml .

# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

# 安装PyInstaller
RUN pip install pyinstaller

# 使用PyInstaller打包应用，包含必要的隐式依赖
RUN pyinstaller --onefile \
    --hidden-import=cryptography \
    --hidden-import=cryptography.x509 \
    --hidden-import=cryptography.hazmat.backends.openssl.backend \
    --hidden-import=cryptography.hazmat.bindings._openssl \
    --hidden-import=cryptography.hazmat.primitives.kdf \
    --hidden-import=cryptography.hazmat.primitives.kdf.pbkdf2 \
    --hidden-import=oracledb \
    --name oracle2dm main.py

# 创建启动脚本
RUN echo '#!/bin/bash\n/app/dist/oracle2dm "$@"' > /oracle2dm.sh
RUN chmod +x /oracle2dm.sh

# 设置入口点
ENTRYPOINT ["/oracle2dm.sh"]